<?php


class Session{
	
	private static $instance;
	protected $compteClient;
	protected $panier;
	protected $editeur; 		// On stocke les données de l'éditeur
								// dans le cas où c'est lui qui vient
								// déposer des fichiers.
	
	private function __construct(){
		session_start();
		
		if (isset($_SESSION['compteClient']))
			$this->compteClient = unserialize($_SESSION['compteClient']);

		if (isset($_SESSION['panier']))
			$this->panier = unserialize($_SESSION['panier']);
		else
			$this->panier = new Panier();
			
		if (isset($_SESSION['editeur']))
			$this->editeur = unserialize($_SESSION['editeur']);
	}
	
	public static function getInstance(){
		if (is_null(self::$instance))
			self::$instance = new Session();
		return self::$instance;
	}
	
	public function getCompteClient(){ return $this->compteClient; }
	
	public function getPanier(){ return $this->panier; }
	
	public function setCompteClient(CompteClient $cptcl){
		$this->compteClient = $cptcl;
	}
	
	public function getEditeur(){
		return $this->editeur;
	}
	public function setEditeur (Editeur $editeur){
		$this->editeur = $editeur;
	}
	
	public function deconnexion(){
		$this->compteClient=null;
		$this->panier = new Panier();
		session_destroy();
		$instance = new Session();
	}
	
	
	public function __destruct(){
		if (!is_null($this->compteClient))
			$_SESSION['compteClient'] = serialize($this->compteClient);
		$_SESSION['panier'] = serialize($this->panier);
		if (!is_null($this->editeur))
			$_SESSION['editeur'] = serialize($this->editeur);
	}
	
}
?>